home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / bsf.jar / com / ibm / bsf / util / BSFEngineImpl.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-11-05  |  4.9 KB  |  123 lines

  1. package com.ibm.bsf.util;
  2.  
  3. import com.ibm.bsf.BSFDeclaredBean;
  4. import com.ibm.bsf.BSFEngine;
  5. import com.ibm.bsf.BSFException;
  6. import com.ibm.bsf.BSFManager;
  7. import com.ibm.cs.util.CodeBuffer;
  8. import com.ibm.cs.util.ObjInfo;
  9. import com.ibm.cs.util.StringUtils;
  10. import java.beans.PropertyChangeEvent;
  11. import java.io.PrintStream;
  12. import java.util.Vector;
  13.  
  14. public abstract class BSFEngineImpl implements BSFEngine {
  15.    protected BSFManager mgr;
  16.    protected String lang;
  17.    protected Vector declaredBeans;
  18.    protected boolean debug;
  19.    protected PrintStream debugStream;
  20.    protected String classPath;
  21.    protected String tempDir;
  22.    protected ClassLoader classLoader;
  23.    // $FF: synthetic field
  24.    static Class class$com$ibm$bsf$BSFManager;
  25.    // $FF: synthetic field
  26.    static Class class$java$lang$Object;
  27.  
  28.    public void initialize(BSFManager var1, String var2, Vector var3) throws BSFException {
  29.       this.mgr = var1;
  30.       this.lang = var2;
  31.       this.declaredBeans = var3;
  32.       this.debug = var1.getDebug();
  33.       this.debugStream = var1.getDebugStream();
  34.       this.classPath = var1.getClassPath();
  35.       this.tempDir = var1.getTempDir();
  36.       this.classLoader = var1.getClassLoader();
  37.    }
  38.  
  39.    public void setDebug(boolean var1) {
  40.       this.debug = var1;
  41.    }
  42.  
  43.    public void propertyChange(PropertyChangeEvent var1) {
  44.       String var2 = var1.getPropertyName();
  45.       Object var3 = var1.getNewValue();
  46.       if (var2.equals("debug")) {
  47.          this.debug = (Boolean)var3;
  48.       } else if (var2.equals("debugStream")) {
  49.          this.debugStream = (PrintStream)var3;
  50.       } else if (var2.equals("classPath")) {
  51.          this.classPath = (String)var3;
  52.       } else if (var2.equals("tempDir")) {
  53.          this.tempDir = (String)var3;
  54.       } else {
  55.          if (var2.equals("classLoader")) {
  56.             this.classLoader = (ClassLoader)var3;
  57.          }
  58.  
  59.       }
  60.    }
  61.  
  62.    public void exec(String var1, int var2, int var3, Object var4) throws BSFException {
  63.       this.eval(var1, var2, var3, var4);
  64.    }
  65.  
  66.    public void compileExpr(String var1, int var2, int var3, Object var4, CodeBuffer var5) throws BSFException {
  67.       ObjInfo var6 = var5.getSymbol("bsf");
  68.       if (var6 == null) {
  69.          var6 = new ObjInfo(class$com$ibm$bsf$BSFManager != null ? class$com$ibm$bsf$BSFManager : (class$com$ibm$bsf$BSFManager = class$("com.ibm.bsf.BSFManager")), "bsf");
  70.          var5.addFieldDeclaration("com.ibm.bsf.BSFManager bsf = new com.ibm.bsf.BSFManager();");
  71.          var5.putSymbol("bsf", var6);
  72.       }
  73.  
  74.       String var7 = var6.objName + ".eval(\"" + this.lang + "\", \"" + StringUtils.cleanString(var1) + "\", " + var2 + ", " + var3 + "," + StringUtils.lineSeparator + StringUtils.getSafeString(var4.toString()) + ")";
  75.       ObjInfo var8 = var5.getFinalServiceMethodStatement();
  76.       if (var8 != null && var8.isExecutable()) {
  77.          var5.addServiceMethodStatement(var8.objName + ";");
  78.       }
  79.  
  80.       var5.setFinalServiceMethodStatement(new ObjInfo(class$java$lang$Object != null ? class$java$lang$Object : (class$java$lang$Object = class$("java.lang.Object")), var7));
  81.       var5.addServiceMethodException("com.ibm.bsf.BSFException");
  82.    }
  83.  
  84.    public void compileScript(String var1, int var2, int var3, Object var4, CodeBuffer var5) throws BSFException {
  85.       ObjInfo var6 = var5.getSymbol("bsf");
  86.       if (var6 == null) {
  87.          var6 = new ObjInfo(class$com$ibm$bsf$BSFManager != null ? class$com$ibm$bsf$BSFManager : (class$com$ibm$bsf$BSFManager = class$("com.ibm.bsf.BSFManager")), "bsf");
  88.          var5.addFieldDeclaration("com.ibm.bsf.BSFManager bsf = new com.ibm.bsf.BSFManager();");
  89.          var5.putSymbol("bsf", var6);
  90.       }
  91.  
  92.       String var7 = var6.objName + ".exec(\"" + this.lang + "\", \"" + StringUtils.cleanString(var1) + "\", " + var2 + ", " + var3 + "," + StringUtils.lineSeparator + StringUtils.getSafeString(var4.toString()) + ")";
  93.       ObjInfo var8 = var5.getFinalServiceMethodStatement();
  94.       if (var8 != null && var8.isExecutable()) {
  95.          var5.addServiceMethodStatement(var8.objName + ";");
  96.       }
  97.  
  98.       var5.setFinalServiceMethodStatement(new ObjInfo(Void.TYPE, var7));
  99.       var5.addServiceMethodException("com.ibm.bsf.BSFException");
  100.    }
  101.  
  102.    public void declareBean(BSFDeclaredBean var1) throws BSFException {
  103.       throw new BSFException(BSFException.REASON_UNSUPPORTED_FEATURE, "language " + this.lang + " does not support declareBean(...).");
  104.    }
  105.  
  106.    public void undeclareBean(BSFDeclaredBean var1) throws BSFException {
  107.       throw new BSFException(BSFException.REASON_UNSUPPORTED_FEATURE, "language " + this.lang + " does not support undeclareBean(...).");
  108.    }
  109.  
  110.    public abstract Object call(Object var1, String var2, Object[] var3) throws BSFException;
  111.  
  112.    public abstract Object eval(String var1, int var2, int var3, Object var4) throws BSFException;
  113.  
  114.    // $FF: synthetic method
  115.    static Class class$(String var0) {
  116.       try {
  117.          return Class.forName(var0);
  118.       } catch (ClassNotFoundException var2) {
  119.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  120.       }
  121.    }
  122. }
  123.